package com.bootdo.hotel.domain;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import com.bootdo.common.annotation.ExcelTileName;
import com.bootdo.common.annotation.NotColumn;
import com.bootdo.common.fansheutils.FansheUtils;
import com.bootdo.common.fansheutils.JibenLei;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.haojiangbo.annotation.HapiFeild;


/**
 * 酒店订单
 * 
 * @author haojiangbo
 * @email 2100272728@qq.com
 * @date 2019-10-19 08:50:34
 */
 @JsonInclude(JsonInclude.Include.NON_NULL)
public class HotelOrder extends JibenLei {
	@NotColumn
	private static final long serialVersionUID = 1L;
	//订单号
	@HapiFeild("订单号")
	@ExcelTileName("订单号")
	private String orderNo;
	
	//id
	 @NotColumn 	@HapiFeild("id")
	private Long id;
	
	//会员ID
		@HapiFeild("会员ID")
	private Long memberId;
	
	//会员名
	@ExcelTileName("会员名")
		@HapiFeild("会员名")
	private String memberName;
	
	//等级
		@HapiFeild("等级")
	private String memberLevel;
	
	//电话
		@HapiFeild("电话")
		@ExcelTileName("电话")
	private String memberMobile;
	
	//性别
		@HapiFeild("性别")
	private Integer memberSex;
	
	//身份证号
		@HapiFeild("身份证号")
		@ExcelTileName("身份证")
	private String memberIdCard;

	//酒店
	@HapiFeild("酒店")
	@ExcelTileName("酒店")
	private String hotelName;



	private String hotelMobile;


	//房间
		@HapiFeild("房间")
	private Long roomId;

	private String roomIdList;

	//房间
		@HapiFeild("房间")
		@ExcelTileName("房间")
	private String roomName;


	private Integer roomNumber;
	//房型
		@HapiFeild("房型")
	private Long roomTypeId;
	
	//房型
		@HapiFeild("房型")
		@ExcelTileName("房型")
	private String roomTypeName;
	
	//酒店
		@HapiFeild("酒店")
	private Long hotelId;

	
	//楼层
		@HapiFeild("楼层")
	private Long floorId;
	
	//楼层
		@HapiFeild("楼层")
	private String floorName;
	
	//到店时间
		@HapiFeild("到店时间")
	private String goHotelTime;
	
	//预订时间
		@HapiFeild("预订时间")
		@JsonFormat(pattern="yyyy-MM-dd")

	private Date inDate;
	
	//预订时间
		@HapiFeild("预订时间")
		@JsonFormat(pattern="HH:mm")
		@ExcelTileName("预订时间")
	private Date inTime;
	
	//离店时间
		@HapiFeild("离店时间")
		@JsonFormat(pattern="yyyy-MM-dd")
		@ExcelTileName("离店日期")
	private Date outDate;
	
	//离店时间
		@HapiFeild("离店时间")
		@JsonFormat(pattern="HH:mm")
		@ExcelTileName("离店时间")
	private Date outTime;
	
	//预订天数
		@HapiFeild("预订天数")
		@ExcelTileName("间夜")
	private Integer dayNum;
	
	//房价码id
		@HapiFeild("房价码id")
	private Long moneyCodeId;
	
	//房价码
		@HapiFeild("房价码")
		@ExcelTileName("房价")
	private String moneyCodeName;
	
	//每日房价
		@HapiFeild("每日房价")
		@ExcelTileName("每日房价")
	private String everyMoney;
	
	//总价
		@HapiFeild("总价")
		@ExcelTileName("总价")
	private Double totalMoney;
	
	//支付价
		@HapiFeild("支付价")
		@ExcelTileName("支付")
	private Double payMoney;
	

	
	//支付号
		@HapiFeild("支付号")
	private String wxOrderNo;
	
	//退款号
		@HapiFeild("退款号")
	private String tkOrderNo;
	
	//第三方退款号
		@HapiFeild("第三方退款号")
	private String wxTkOrderNo;
	
	//状态  0是预订  1是入住 2是退房 3是续住 4是超时  5是退款 6是结算
		@HapiFeild("状态")
		@ExcelTileName(value="状态",change="0=预订,1=入住,2=退房,3=续住,4=超时,5=退款,6=结算")
	private Integer status;
	
	//创建时间
		@HapiFeild("创建时间")
	private Date createTime;
	
	//用户ID
		@HapiFeild("用户ID")
	private Long userId;
	
	//用户名称
		@HapiFeild("用户名称")
	private String userName;

	//删除标记
	private Integer delFlag;

	//0是普通订单 1是钟点房订单
	private Integer orderType;

	private String orderSrc ;

	@NotColumn
	private String outTimeStr;

	private Integer inHour;

	@NotColumn
	private List<HotelRoom> hotelRooms = new ArrayList<>();

	@NotColumn
	private String flag ="";
	@ExcelTileName("结算金额")
	private Double jiesuanMoney;

	private Date jiesuanTime;


	private Integer roomTotalNum;

    public HotelOrder(){
    	this.outTimeStr = "";
    	this.orderSrc = "HOTEL";
    	this.status = 0;
    	this.orderType = 0;
    	this.delFlag = 0;
    	this.memberSex = 1;
    	this.roomNumber = 1;
    	this.inHour = 0;
    	this.jiesuanMoney = 0d;
    	this.createTime = new Date();
    	this.roomTotalNum = 0;
    	this.hotelMobile = "";
    }

	public String getHotelMobile() {
		return hotelMobile;
	}

	public void setHotelMobile(String hotelMobile) {
		this.hotelMobile = hotelMobile;
	}

	public Integer getRoomTotalNum() {
		return roomTotalNum;
	}

	public void setRoomTotalNum(Integer roomTotalNum) {
		this.roomTotalNum = roomTotalNum;
	}

	public Date getJiesuanTime() {
		return jiesuanTime;
	}

	public void setJiesuanTime(Date jiesuanTime) {
		this.jiesuanTime = jiesuanTime;
	}

	public Double getJiesuanMoney() {
		return jiesuanMoney;
	}

	public void setJiesuanMoney(Double jiesuanMoney) {
		this.jiesuanMoney = jiesuanMoney;
	}

	public String getFlag() {
		return flag;
	}

	public void setFlag(String flag) {
		this.flag = flag;
	}

	public String getRoomIdList() {
		return roomIdList;
	}

	public void setRoomIdList(String roomIdList) {
		this.roomIdList = roomIdList;
	}

	public List<HotelRoom> getHotelRooms() {
		return hotelRooms;
	}

	public void setHotelRooms(List<HotelRoom> hotelRooms) {
		this.hotelRooms = hotelRooms;
	}

	public Integer getRoomNumber() {
		return roomNumber;
	}

	public Integer getInHour() {
		return inHour;
	}

	public void setInHour(Integer inHour) {
		this.inHour = inHour;
	}

	public void setRoomNumber(Integer roomNumber) {
		this.roomNumber = roomNumber;
	}

	public String getOutTimeStr() {
		return outTimeStr;
	}

	public void setOutTimeStr(String outTimeStr) {
		this.outTimeStr = outTimeStr;
	}

	public String getOrderSrc() {
		return orderSrc;
	}

	public void setOrderSrc(String orderSrc) {
		this.orderSrc = orderSrc;
	}

	public Integer getOrderType() {
		return orderType;
	}

	public void setOrderType(Integer orderType) {
		this.orderType = orderType;
	}

	public Integer getDelFlag() {
		return delFlag;
	}

	public void setDelFlag(Integer delFlag) {
		this.delFlag = delFlag;
	}

	/**
	 * 设置：id
	 */
	public void setId(Long id) {
		this.id = id;
	}
	/**
	 * 获取：id
	 */
	public Long getId() {
		return id;
	}
	/**
	 * 设置：会员ID
	 */
	public void setMemberId(Long memberId) {
		this.memberId = memberId;
	}
	/**
	 * 获取：会员ID
	 */
	public Long getMemberId() {
		return memberId;
	}
	/**
	 * 设置：会员名
	 */
	public void setMemberName(String memberName) {
		this.memberName = memberName;
	}
	/**
	 * 获取：会员名
	 */
	public String getMemberName() {
		return memberName;
	}
	/**
	 * 设置：等级
	 */
	public void setMemberLevel(String memberLevel) {
		this.memberLevel = memberLevel;
	}
	/**
	 * 获取：等级
	 */
	public String getMemberLevel() {
		return memberLevel;
	}
	/**
	 * 设置：电话
	 */
	public void setMemberMobile(String memberMobile) {
		this.memberMobile = memberMobile;
	}
	/**
	 * 获取：电话
	 */
	public String getMemberMobile() {
		return memberMobile;
	}
	/**
	 * 设置：性别
	 */
	public void setMemberSex(Integer memberSex) {
		this.memberSex = memberSex;
	}
	/**
	 * 获取：性别
	 */
	public Integer getMemberSex() {
		return memberSex;
	}
	/**
	 * 设置：身份证号
	 */
	public void setMemberIdCard(String memberIdCard) {
		this.memberIdCard = memberIdCard;
	}
	/**
	 * 获取：身份证号
	 */
	public String getMemberIdCard() {
		return memberIdCard;
	}
	/**
	 * 设置：房间
	 */
	public void setRoomId(Long roomId) {
		this.roomId = roomId;
	}
	/**
	 * 获取：房间
	 */
	public Long getRoomId() {
		return roomId;
	}
	/**
	 * 设置：房间
	 */
	public void setRoomName(String roomName) {
		this.roomName = roomName;
	}
	/**
	 * 获取：房间
	 */
	public String getRoomName() {
		return roomName;
	}
	/**
	 * 设置：房型
	 */
	public void setRoomTypeId(Long roomTypeId) {
		this.roomTypeId = roomTypeId;
	}
	/**
	 * 获取：房型
	 */
	public Long getRoomTypeId() {
		return roomTypeId;
	}
	/**
	 * 设置：房型
	 */
	public void setRoomTypeName(String roomTypeName) {
		this.roomTypeName = roomTypeName;
	}
	/**
	 * 获取：房型
	 */
	public String getRoomTypeName() {
		return roomTypeName;
	}
	/**
	 * 设置：酒店
	 */
	public void setHotelId(Long hotelId) {
		this.hotelId = hotelId;
	}
	/**
	 * 获取：酒店
	 */
	public Long getHotelId() {
		return hotelId;
	}
	/**
	 * 设置：酒店
	 */
	public void setHotelName(String hotelName) {
		this.hotelName = hotelName;
	}
	/**
	 * 获取：酒店
	 */
	public String getHotelName() {
		return hotelName;
	}
	/**
	 * 设置：楼层
	 */
	public void setFloorId(Long floorId) {
		this.floorId = floorId;
	}
	/**
	 * 获取：楼层
	 */
	public Long getFloorId() {
		return floorId;
	}
	/**
	 * 设置：楼层
	 */
	public void setFloorName(String floorName) {
		this.floorName = floorName;
	}
	/**
	 * 获取：楼层
	 */
	public String getFloorName() {
		return floorName;
	}
	/**
	 * 设置：到店时间
	 */
	public void setGoHotelTime(String goHotelTime) {
		this.goHotelTime = goHotelTime;
	}
	/**
	 * 获取：到店时间
	 */
	public String getGoHotelTime() {
		return goHotelTime;
	}
	/**
	 * 设置：预订时间
	 */
	public void setInDate(Date inDate) {
		this.inDate = inDate;
	}
	/**
	 * 获取：预订时间
	 */
	public Date getInDate() {
		return inDate;
	}
	/**
	 * 设置：预订时间
	 */
	public void setInTime(Date inTime) {
		this.inTime = inTime;
	}
	/**
	 * 获取：预订时间
	 */
	public Date getInTime() {
		return inTime;
	}
	/**
	 * 设置：离店时间
	 */
	public void setOutDate(Date outDate) {
		this.outDate = outDate;
	}
	/**
	 * 获取：离店时间
	 */
	public Date getOutDate() {
		return outDate;
	}
	/**
	 * 设置：离店时间
	 */
	public void setOutTime(Date outTime) {
		this.outTime = outTime;
	}
	/**
	 * 获取：离店时间
	 */
	public Date getOutTime() {
		return outTime;
	}
	/**
	 * 设置：预订天数
	 */
	public void setDayNum(Integer dayNum) {
		this.dayNum = dayNum;
	}
	/**
	 * 获取：预订天数
	 */
	public Integer getDayNum() {
		return dayNum;
	}
	/**
	 * 设置：房价码id
	 */
	public void setMoneyCodeId(Long moneyCodeId) {
		this.moneyCodeId = moneyCodeId;
	}
	/**
	 * 获取：房价码id
	 */
	public Long getMoneyCodeId() {
		return moneyCodeId;
	}
	/**
	 * 设置：房价码
	 */
	public void setMoneyCodeName(String moneyCodeName) {
		this.moneyCodeName = moneyCodeName;
	}
	/**
	 * 获取：房价码
	 */
	public String getMoneyCodeName() {
		return moneyCodeName;
	}
	/**
	 * 设置：每日房价
	 */
	public void setEveryMoney(String everyMoney) {
		this.everyMoney = everyMoney;
	}
	/**
	 * 获取：每日房价
	 */
	public String getEveryMoney() {
		return everyMoney;
	}
	/**
	 * 设置：总价
	 */
	public void setTotalMoney(Double totalMoney) {
		this.totalMoney = totalMoney;
	}
	/**
	 * 获取：总价
	 */
	public Double getTotalMoney() {
		return totalMoney;
	}
	/**
	 * 设置：支付价
	 */
	public void setPayMoney(Double payMoney) {
		this.payMoney = payMoney;
	}
	/**
	 * 获取：支付价
	 */
	public Double getPayMoney() {
		return payMoney;
	}
	/**
	 * 设置：订单号
	 */
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}
	/**
	 * 获取：订单号
	 */
	public String getOrderNo() {
		return orderNo;
	}
	/**
	 * 设置：支付号
	 */
	public void setWxOrderNo(String wxOrderNo) {
		this.wxOrderNo = wxOrderNo;
	}
	/**
	 * 获取：支付号
	 */
	public String getWxOrderNo() {
		return wxOrderNo;
	}
	/**
	 * 设置：退款号
	 */
	public void setTkOrderNo(String tkOrderNo) {
		this.tkOrderNo = tkOrderNo;
	}
	/**
	 * 获取：退款号
	 */
	public String getTkOrderNo() {
		return tkOrderNo;
	}
	/**
	 * 设置：第三方退款号
	 */
	public void setWxTkOrderNo(String wxTkOrderNo) {
		this.wxTkOrderNo = wxTkOrderNo;
	}
	/**
	 * 获取：第三方退款号
	 */
	public String getWxTkOrderNo() {
		return wxTkOrderNo;
	}
	/**
	 * 设置：状态
	 */
	public void setStatus(Integer status) {
		this.status = status;
	}
	/**
	 * 获取：状态
	 */
	public Integer getStatus() {
		return status;
	}
	/**
	 * 设置：创建时间
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	/**
	 * 获取：创建时间
	 */
	public Date getCreateTime() {
		return createTime;
	}
	/**
	 * 设置：用户ID
	 */
	public void setUserId(Long userId) {
		this.userId = userId;
	}
	/**
	 * 获取：用户ID
	 */
	public Long getUserId() {
		return userId;
	}
	/**
	 * 设置：用户名称
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}
	/**
	 * 获取：用户名称
	 */
	public String getUserName() {
		return userName;
	}


	@Override
	@JsonIgnore
	public List<HashMap<String, Object>> getFields() {
		// TODO Auto-generated method stub
		return FansheUtils.getFieldList(this);
	}


}
